package top.lixunda.ecommerce.server.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import top.lixunda.ecommerce.server.user.api.entity.db.UserPermissionDO;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 用户权限视图，查看用户权限，已经处理了必要的权限条件判断 服务类
 * </p>
 *
 * @author Lixunda
 * @since 2020-04-24
 */
public interface IUserPermissionService extends IService<UserPermissionDO> {

    /**
     * 根据账号查询用户权限
     *
     * @param account 用户账户
     * @return 权限列表
     */
    List<UserPermissionDO> queryPermissionsByAccount(Integer account);

    /**
     * 根据账号查询用户权限
     *
     * @param account  用户账户
     * @param userType 用户类型
     * @return 权限列表
     */
    List<UserPermissionDO> queryPermissionsByAccountAndType(Integer account, String userType);

    /**
     * 查询当前登陆账户的权限
     *
     * @return 权限列表
     */
    List<UserPermissionDO> queryCurrentPermissions();

    /**
     * 根据多个用户账户查询多个账户的权限
     *
     * @param accounts 账户列表
     * @return 多个账户的权限列表，键为用户编号，值为权限列表
     */
    Map<Integer, List<UserPermissionDO>> queryUsersPermissions(List<Integer> accounts);

}
